.. _cmcIxIsDone:

cmcIxIsDone
================================
--------------------------------


SYNOPSYS
`````````````
.. code-block:: none

    VT_I4 cmcIxIsDone ([in] VT_I4 BoardId, [in] VT_I4 MapIndex, [out] VT_PI4 IsDone)         

DESCRIPTION
`````````````  

- 지정한 보간맵에 해당하는 보간작업이 완료됐는지를 확인(確認)합니다.   

\

- 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의
  첨두어 cmc 가 붙지 않습니다.


PARAMETER
`````````````

▶ BoardId: 사용자가 설정한 디바이스(보드) ID. 
 
▶ MapIndex : 맵번호(Map index), 이 맵번호를 사용하기전에 먼저 cmcIxMapAxes() 함수를 
통하여 해당 맵번호에 유효한 축들이 맵핑되어 있어야 합니다. 
 
▶ IsDone : 이 매개 변수로 인해 모션 작업이 완료되었는지를 판단할 수 있습니다. 

  .. csv-table::
   :widths: 10 90
   :header-rows: 1
   :stub-columns: 0

    Value, Meaning
    0, 모션작업이 완료되지 않음
    1, 모션작업이 완료됨       


RETURN VALUE
`````````````

+------------+-----------+
|    Value   | Meaning   |
+============+===========+
|    음수    | 수행 실패 |
+------------+-----------+
| ERR_NONE   | 수행 성공 |
+------------+-----------+

EXAMPLE
`````````

.. code-block:: c++
 :linenos:
 :emphasize-lines: 5

  C/C++  
  
  #define MAP0 0 //맵번호 (0) 
  
  Long BoardID = 0; 
  
  cmcIxMapAxes(BoardID, MAP0, cmcX1_MASK | cmcY1_MASK, cmcIX_MODE_LINEAR); 
  //또는 cmcIxMapAxes(BoardID, MAP0, 0x3, 0x0);  
  //보간 이동할 축들의 기본속도를 설정합니다.
  //속도 패턴 설정 
  long nIsDone = 0; 
  double fDistList[2] = {1000, 1000}; 
  if(cmcIxLine(BoardID, MAP0, fDistList, cmcFALSE) != ERR_NONE){ 
  // 에러메시지 출력 
  return; 
  } 
  while (1){ 
  cmcIxIsDone(BoardID, MAP0, &nIsDone );  
  if(nIsDone == cmcTRUE) break; 
  else{ 
  ... 
  } 
  }

.. code-block:: c++
 :linenos:

  Visual Basic 
  
  //BoardID는 0으로 선언되었다고 가정함 
  Dim fDistList As Double 
  Dim nIsDone As Long 
  If (IxLineStart(BoardID, MAP0, fDistList(0)) = cmcFALSE) Then 
  // 에러메시지 출력 
  Exit Sub 
  End If 
  While (IxIsDone(BoardID, 3, nIsDone) = cmcFALSE) 
  … 
  end 
  If (Not (ErrGetLastCode(nErrCode) = ERR_NONE)) Then 
  // 에러메시지 출력 
  Exit Sub 
  End If